Skip to content

Add isolated worktree development environments - #1

Merged
the-medo merged 2 commits into
mainfrom
codex/local-development
Oct 22, 2026
Merged

the-medo merged 2 commits into
mainfrom
codex/local-development

Conversation

@the-medo

@the-medo the-medo commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

Talebound's previous local setup shared fixed ports and required manual environment configuration. This adds a repeatable Linux/WSL setup so multiple worktrees can run independently, including their database, background email jobs, and browser sessions.

Changes

  • Add an agent-neutral bootstrap and setup, up, status, logs, restart, migrate, test-backend, and down commands using Docker Compose and Python's standard library.
  • Give each worktree its own PostgreSQL database, Redis queue, Mailpit inbox, loopback address, ports, and generated credentials. Keep runtime configuration ignored by Git and use host-only cookies to isolate sessions.
  • Preserve data on normal stops; require matching ownership labels before cleanup. Add concurrent-worktree lifecycle tests and a GitHub Actions workflow.
  • Honor SMTP_ENDPOINT so local signup and password-reset emails arrive in Mailpit without AWS credentials. Add a local SMTP delivery test; the existing deployed configuration continues to specify SES.
  • Add Suspense boundaries around the authenticated header and image-backed avatars to prevent blank pages after login or avatar changes.
  • Restore passing frontend checks: remove unused legacy code, deduplicate React types, replace the ambient Redux override with typed hooks, and align image/location consumers and cache updates with the generated API.
  • Update AGENTS.md, the root Makefile, and the development guides with bootstrap, environment, validation, and cleanup instructions.

Validation

  • Bootstrapped and ran two complete worktree instances simultaneously; verified separate databases, queues, inboxes, addresses, credentials, and browser sessions.

  • Concurrent lifecycle integration test passed: repeated setup, stop/restart persistence, foreign-resource refusal, and purging one stack while the other remains usable.

  • Backend short test suite passed against the migrated worktree database, including the new SMTP test.

  • Browser checks passed for signup, verification email delivery, email verification, login, Worlds/Systems/Characters/Quests, password reset, and login with the changed password. Backend restart and subsequent login also passed.

  • Bash/Python syntax checks, workflow actionlint, Makefile command checks, and git diff --check passed.

  • Locked Yarn installation, full frontend ESLint, TypeScript checking, and the Next.js production build passed under Node 22. Lint and type checking remain enabled.

  • Browser regressions passed for paginated location loading, edit, bulk deletion, creation, and map/post lists. Image-list invalidation after upload, avatar upload, and profile rendering passed with mocked image responses; real Cloudflare upload was not exercised.

@the-medo
the-medo merged commit 4c38757 into main Oct 22, 2026
3 checks passed
@the-medo
the-medo deleted the codex/local-development branch October 22, 2026 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant